package com.lee.starter.util;

import java.util.HashMap;
import java.util.List;

/**
 * @author lee
 * @since 2019-11-22
 */
public class DataSetUtils {

    public interface DictKey<K, V> {
        K getKey(V data);
    }

    /**
     * 将一个列表数据转换为字典
     *
     * @param datas 要转换的数据
     * @param key   字典的key（通常可以用lambda表达式获取）
     * @param <K>   key的类型
     * @param <V>   数据类型
     * @return 字典
     */
    public static <K, V> HashMap<K, V> list2Dict(List<V> datas, DictKey<K, V> key) {
        HashMap<K, V> dict = new HashMap<>(datas.size());
        datas.forEach(data -> dict.put(key.getKey(data), data));
        return dict;
    }
}
